package org.nstack.storage.ceph.backup;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class CephBackupStorageSimulatorConfig {
    public static class CephBackupStorageConfig {
        public long totalCapacity;
        public long availCapacity;
        public String fsid;
        public String name;
    }

    public volatile boolean monInitSuccess = true;
    public List<CephBackupStorageBase.InitCmd> initCmds = new ArrayList<CephBackupStorageBase.InitCmd>();
    public Map<String, CephBackupStorageConfig> config = new HashMap<String, CephBackupStorageConfig>();
    public List<CephBackupStorageBase.DownloadCmd> downloadCmds = new ArrayList<CephBackupStorageBase.DownloadCmd>();
    public List<CephBackupStorageBase.DeleteCmd> deleteCmds = new ArrayList<CephBackupStorageBase.DeleteCmd>();
    public List<CephBackupStorageBase.CheckImageMetaDataFileExistCmd> checkMetadataFileCmds = new ArrayList<CephBackupStorageBase.CheckImageMetaDataFileExistCmd>();
    public List<CephBackupStorageBase.DeleteImageInfoFromMetaDataFileCmd> deleteImageInfoFromMetadataFileCmds = new ArrayList<CephBackupStorageBase.DeleteImageInfoFromMetaDataFileCmd>();
    public List<CephBackupStorageBase.DumpImageInfoToMetaDataFileCmd> dumpImageInfoToMetaDataFileCmds = new ArrayList<CephBackupStorageBase.DumpImageInfoToMetaDataFileCmd>();
    public List<CephBackupStorageBase.GetImagesMetaDataCmd> getImageInfoToMetaDataFileCmds = new ArrayList<CephBackupStorageBase.GetImagesMetaDataCmd>();
    public List<CephBackupStorageBase.PingCmd> pingCmds = new ArrayList<CephBackupStorageBase.PingCmd>();
    public Map<String, Long> imageSize = new HashMap<String, Long>();
    public Map<String, Long> imageActualSize = new HashMap<String, Long>();

    public List<CephBackupStorageBase.GetImageSizeCmd> getImageSizeCmds = new ArrayList<CephBackupStorageBase.GetImageSizeCmd>();
    public Map<String, Long> getImageSizeCmdSize = new HashMap<String, Long>();
    public Map<String, Long> getImageSizeCmdActualSize = new HashMap<String, Long>();

    public Map<String, Boolean> pingCmdSuccess = new HashMap<String, Boolean>();
    public Map<String, CephBackupStorageBase.PingOperationFailure> pingCmdOperationFailure = new HashMap<>();
    public List<CephBackupStorageBase.GetFactsCmd> getFactsCmds = new ArrayList<CephBackupStorageBase.GetFactsCmd>();
    public Map<String, String> getFactsCmdFsid = new HashMap<String, String>();
    public Map<String, String> monAddr = new HashMap<>();
}
